import request from '../utils/request'

/**
 * 用户登录
 */
export function login(data) {
    return request({
        url: '/user/login',
        method: 'post',
        data
    })
}

/**
 * 获取用户基本信息（用户名、头像）
 */
export function getInfo() {
    return request({
        url: '/user/info',
        method: 'get',
    })
}

/**
 * 注销登录
 */
export function logout() {
    return request({
        url: '/user/logout',
        method: 'post'
    })
}

/**
 * 校验用户名唯一性
 */
export function validateUsername(username) {
    return request({
        url: `/user/register/username/${username}`,
        method: 'get'
    })
}

/**
 * 校验手机号唯一性
 */
export function validatePhoneNum(phoneNum) {
    return request({
        url: `/user/register/phone/${phoneNum}`,
        method: 'get'
    })
}

/**
 * 用户注册
 */
export function register(data) {
    return request({
        url: '/user/register',
        method: 'post',
        data
    })
}

/**
 * 注册：发送短信验证码
 * @param phone 注册手机号
 */
export function sendRegisterPhoneCode(phone) {
    return request({
        url: `/user/register/sms/${phone}`,
        method: 'get',
    })
}

/**
 * 注册：手机验证码验证
 * @param phone 注册手机号
 * @param code 手机验证码
 */
export function checkPhoneCode(phone, code) {
    return request({
        url: `/user/register/sms/${phone}/${code}`,
        method: 'get',
    })
}

// ============================= Login ================================ s
/**
 * 短信快捷登录：校验手机号是否已注册
 */
export function validateLoginPhoneNum(phoneNum) {
    return request({
        url: `/user/phonelogin/check/${phoneNum}`,
        method: 'post'
    })
}

/**
 * 短信快捷登录：发送短信验证码
 * @param phone 注册手机号
 */
export function sendLoginPhoneCode(phone) {
    return request({
        url: `/user/phonelogin/sms/${phone}`,
        method: 'post',
    })
}

/**
 * 短信快捷登录
 * @param param 手机号/验证码
 */
export function loginByPhoneCode(param) {
    const {phone, code} = param
    return request({
        url: `/user/phonelogin/login/${phone}/${code}`,
        method: 'post',
    })
}

/**
 * 二维码登录:获取二维码
 */
export function getQrCode() {
    return request({
        url: `user/qrcode`,
        method: 'get',
    })
}

/**
 * 二维码登录:轮询查询状态
 * @param code 二维码唯一标识
 */
export function checkQrCode(code) {
    return request({
        url: `user/qrcode/check/${code}`,
        method: 'get',
    })
}

/**
 * 二维码登录
 * @param code 二维码唯一标识
 */
export function loginByQrCode(code) {
    return request({
        url: `user/qrcode/login/${code}`,
        method: 'post',
    })
}

// ============================= Login ================================ e